package org.qqcui.designpattern.patterns.visitor;

import java.util.LinkedList;
import java.util.List;

/**
 * 数据结构，管理很多人
 *
 * @author cuiqingqiang
 * @version 1.0
 * @date 2022/5/6 13:48
 **/
public class ObjectStructure {

    /**
     * 维护了一个集合
     */
    private List<Person> persons = new LinkedList<>();

    /**
     * 往集合中添加元素
     * @param person
     */
    public void attach(Person person) {
        persons.add(person);
    }


    /**
     * 从集合中移除元素
     * @param p
     */
    public void detach(Person p) {
        persons.remove(p);
    }

    /**
     * 显示测评情况，这里的action就相当于一个访问者
     * @param action
     */
    public void display(Action action) {
        for (Person person : persons) {
            person.accept(action);
        }
    }
}
